iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
DevOps

搞定Docker網路系列 第 16

Docker的網路-macvlan

  • 分享至 

  • xImage
  •  

Docker的網路-macvlan

參考文章:
https://godleon.github.io/blog/Docker/docker-network-macvlan/
https://docs.docker.com/network/drivers/macvlan/
https://wiki.archlinux.org/title/VLAN

接下來將嘗試使用macvlan,這個linux才能使用的docker network模式。

目前文章都說明macvlan是效能比較好的一種網路模式,且支援四種模式,分別為:

  • bridge
  • vepa
  • passthru
  • private

實際操作後,發現這個功能相當依賴Linux的網路架構。

因為我的Linux環境是Archlinux,所以使用Archlinux的作法說明如下:

實驗目標:建立macvlan的bridge mode的network物件,然後讓兩個容器可以互通

  1. 先新增一張macvlan虛擬網卡

ip link add link wlan0 name wlan0.100 type vlan id 100

  1. 網卡啟動

ip link set wlan0.100 up

這時ifconfig就可以看到這張網卡的資訊了!!!

  1. 建立network物件,parent使用這張虛擬網卡

docker network create -d macvlan -o parent=wlan0.100 -o macvlan_mode=bridge mac1

  1. 建立兩個container,都使用這張網卡做macvlan

docker run -it --rm --network=mac1 nicolaka/netshoot
docker run -it --rm --network=mac1 nicolaka/netshoot

  1. 兩個container互ping

互ping成功。

心得,跟實驗遇到的問題

  1. 新增的虛擬網卡一定要啟動,不然容器互ping會失敗
  2. 是否網卡要開promiscuous模式才可以正常取得獨立mac,這部份還要再確認

參考:有寫到:A MacVLAN network requires you to enable promiscuous mode on the parent interface of the Docker host, which is not required with IPvlan.

https://4sysops.com/archives/configuring-ipvlan-networking-in-docker/


上一篇
Docker的網路-WAN IP篇章的中斷...
下一篇
Docker的網路-ipvlan L2 mode
系列文
搞定Docker網路31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言